package cn.cloud9.designpattern.dp01singleton;

/**
 * @author OnCloud9
 * @description 懒汉式第三种
 * @project Java
 * @date 2022年05月22日 9:58
 */
public class Singleton5 {

    private Singleton5(){}

    private static Singleton5 instance;

    /**
     * 经过判断后枷锁实例，多线程直接跳过判断获取，还是会创建实例
     * @return
     */
    public static Singleton5 getInstance(){
        // 可以对分配过程上锁了，但是判断又没有上锁，判断又可能失效
        if (instance == null) synchronized (Singleton5.class) {
            instance = new Singleton5();
        }
        return instance;
    }
}
